1. Field of the Invention
The present invention relates generally to data processing systems. More specifically, the present invention is directed to a method, apparatus, and computer program product for reconfiguring a storage area network (SAN) to support the execution of an application automatically upon execution of the application.
2. Description of the Related Art
A storage area network (SAN) is a dedicated network that serves to interconnect storage-related resources available to one or more networked servers. A SAN is typically separate from local area networks (LANs) and wide area networks (WANs). SANs are often characterized by high interconnection data rates between member storage peripherals. SANs are also often characterized by highly scalable architectures. SANs include both hardware and software for hardware management, monitoring, and configuration.
In order for the SAN to support the execution, by a host processor, of a particular application, a user must configure the SAN. The user is required to select particular devices that will be used and then configure those devices so that they will support the execution of the application. The SAN is manually configured by the user to support the execution of a particular application when the user performs one or more of the following actions: creates or modifies one or more SAN zones, assigns one or more Logical Units (LUNs) to a particular host port, assigns host ports and/or target ports to a zone, adjusts the bandwidths of inter-switch communication paths, and adjusts other SAN parameters as needed.
After the application has completed executing, a user might manually reconfigure the SAN in order to support the execution of a different application. The SAN configuration, at this time, might no longer support the execution of the first application. If the user then decided to execute the first application again, the SAN would need to be reconfigured to again support the execution of the first application. At this time, the user would need to manually reconfigure the SAN to support the execution of the first application. Requiring the user to continue to manually reconfigure the SAN places extensive demands on the user and increases the likelihood that mistakes may be made by the user.
If the first application were executed again at a later time, the SAN configuration might still support the execution of the first application. In this case, the SAN would not need to be reconfigured. However, the user is required to execute the application using the same processing environment, i.e., the same host processor(s), the same host bus adapters (HBAs), the same target bus adapters (TBAs), the same routes through the SAN, and any other resources used the first time. This requirement limits the user to a particular processing environment that might no longer be the optimal or preferred processing environment.
This is not a practical solution. The original host processor may be busy now performing other processes or may be unavailable for other reasons. When the host processor is already busy or unavailable, it is necessary to choose a different host processor to use to execute the application which would result in requiring the user to manually reconfigure the SAN.
A SAN may be configured by creating, modifying, or removing zones. A zone is a logical grouping of some or all of the hosts and/or resources in the SAN. A SAN may be concurrently logically divided into several different zones with each zone including different logical groupings of hosts and resources. Zoning a SAN has a number of benefits including load balancing, dedication of storage capacity, data integrity, and security, as well as others.
Zones contain Fibre Channel ports. When a zone is created, various hosts and resources are assigned to that zone by including the host's or resource's port in the zone. Host and resources that are assigned to the zone are allowed to access only the other hosts and resources that are assigned to the same zone. The hosts and resources in one zone are not allowed to access hosts and resources in other zones unless they are also in the other zone.
Each host and resource in a SAN includes a port that couples the host or resource to the SAN. The zoning is enforced by making a port, whether it is a target adapter or host adapter port, in a zone visible to only those other ports that are part of the same zone.
A SAN may also be configured by subdividing storage devices in the SAN into Logical Units (LUNs) where the devices may also support LUN masking. LUN masking is a capability of a storage device to assign a set of its LUNs to a particular set of host ports. Other LUNs may also exist in the same storage device, where these other LUNs are assigned to a different set of host ports. The storage device then restricts access to the LUNs such that each LUN can only be accessed from the particular set of host ports to which it is assigned. When the host controlling that host port restricts usage of the host port to a particular operating system, the LUNs that the storage device assigns to the host port become accessible only to that particular operating system in the host.
As described above, when a particular user application is first executed, the user selects a particular host processor on which to execute the application, and the user selects a particular host port on the processor for use by the application. This host processor port may be assigned to a particular zone that includes particular I/O devices, including those I/O devices needed to support the application. When this application is executed, data will typically be stored on one or more of these I/O devices for the application. Because the host processor port is included within a zone that includes the I/O devices needed by the application, the host processor is able to access the I/O devices and store the application's data.
When the application is executed at a later time, the user might choose to execute the application on a different, second host processor and a different port. The port of this second host processor may be included within a zone or zones that are different from the zone of the first host processor port. These zones contain different I/O adapter ports. Thus, when the application is executed by the second host processor, the second host processor may not have access to the I/O adapters that were used by the first host processor to store the application's data. Therefore, the application will not have access to its data.
In order to always be able to access the data that was stored on the I/O adapters, existing solutions require either manual reconfiguration of the SAN prior to execution of the application or require the application to always be run on the same processor and using the same SAN devices. Neither solution is acceptable because of the extensive demands placed on the user and the likelihood that mistakes could be made by the user and the processing limitations.
Therefore, a need exists for a method, apparatus, and computer program product for automatically reconfiguring a SAN's zoning, LUN masking, and other parameters to create a SAN configuration which supports the application in response to a request to execute the application.